3.2 对话框

tkinter中共提供了三种标准对话框

  • messagebox
  • filedialog
  • colorchooser

messagebox

消息对话框

from tkinter import *
from tkinter import messagebox

root = Tk()

# 设置窗口标题
root.title("主窗口")

# parent指定依托的父窗口,若不指定,默认为根窗口
result = messagebox.askokcancel("标题", "这是内容", parent=root)
print(result)

messagebox.askquestion("标题", "这是question窗口")
messagebox.askretrycancel("标题", "这是retry cancel窗口")
messagebox.showerror("标题", "这是error窗口")
messagebox.showinfo("标题", "这是info窗口")
messagebox.showwarning("标题", "这是warning窗口")

root.mainloop()

filedialog

文件对话框

from tkinter import *
from tkinter import filedialog


def onclick():
    file_name = filedialog.askopenfilename(
        title="打开我的文件", initialdir="D:\\",
        filetypes=[("PNG", ".png"), ("文本文档", ".txt")])
    print(file_name)

def save_file():
    file_name = filedialog.asksaveasfilename(
        title="保存文件", initialdir="D:\\")
    print(file_name)


root = Tk()

Button(root, text="浏览", command=onclick).pack()
Button(root, text="保存", command=save_file).pack()

root.mainloop()

除上述对话框外,还有一个选择文件夹对话框,这个在tkinter文档中没有写,但是通过查看源码可以找到

from tkinter import *
from tkinter import filedialog

def onclick():
    # 选择文件夹对话框
    file_name = filedialog.askdirectory(initialdir="D:\\")
    print(file_name)

root = Tk()

Button(root, text="浏览", command=onclick).pack()

root.mainloop()

参数说明:

  • title

    设置文件对话框的标题

  • initialdir

    设置默认打开的路径

  • filetypes

    文件类型筛选。它的值是一个列表,列表中的元素必须是一个二元元组。元组的第一个元素是类型名称,第二个是类型后缀名。


colorchooser

颜色选择对话框

from tkinter import *
from tkinter import colorchooser


def onclick():
    file_name = colorchooser.askcolor()

    # 返回值是一个元组,第一个元素是RGB色值元组,第二个是对应的16进制色值
    print(file_name)

root = Tk()

Button(root, text="选色", command=onclick).pack()

root.mainloop()

results matching ""

    No results matching ""